package cn.kgc.springday05.interfaces;

/**
 * @Author: 课工场
 * @Version: v1.0  2023/6/15
 * @Description:
 * 要求：  实现在不修改源代码的基础上  实现代码功能的增强
 * 实现方案：
 *   1.代理模式
 *    1.1 静态代理
 *         步骤：
 *          1.创建一个类 实现和被代理类相同的接口
 *          2.代理类要依赖被代理类  代理类中需要注入一个被代理类对象
 *     不足：
 *          1.代码冗余
 *          2.提升了代码的维护难度
 *    1.2 动态代理
 *      1.jdk代理   基于接口的代理 被代理类和代理类要实现相同接口
 *      2.cglib代理  基于父子类的代理
 */
public class TeacherLi implements Teacher {

    @Override
    public String teachOnline(String course) {

        //System.out.println("===========上课时间到了==============");
        System.out.println(course+"课程线上教学进行中......");
        //System.out.println("===========下课时间到了==============");
        return course;
    }

    @Override
    public String teachOffline(String course) {
        //System.out.println("===========上课时间到了==============");
        System.out.println(course+"课程线下教学进行中......");
        //System.out.println("===========下课时间到了==============");
        return course;
    }
}
